A feature of many modern computer software applications is the ability to determine break points for the presentation of output. Existing applications that support printing, such as MICROSOFT WORD 2000 by the MICROSOFT CORPORATION of Redmond, Wash., for example, include pagination routines for determining where page breaks should occur. Pagination is the process by which more than one page worth of data is broken up into portions that will each fit on a single page. The techniques of pagination are similarly employed when displaying output to a monitor, or other types of output devices, particularly when the output device is limited to displaying a fixed, finite amount of output at a given time, or when multiple views are presented simultaneously, such as a 2-column view of text.
Many modern computer software applications further have the ability to embed different types of objects within each other. For example, in MICROSOFT WORD 2000, a user may embed a graphical table, graphical drawing, or other graphical object within the context of a word processing document. When documents containing embedded graphical objects are paginated, problems may arise if a page break falls across an embedded graphical object. The embedded objects may not be “co-paginated.” That is, unless pagination has been specifically defined for the embedded graphical object's type in the context of the particular application, the embedded graphical object will either not be allowed to break across the page, or will exhibit unpredictable results. Although some existing applications contemplate embedding and pagination for particular object types—such as MICROSOFT WORD allowing embedded tables to break across pages—there does not exist a general, extensible way in which an application can allow co-pagination with arbitrary object types.